import { Router } from 'express';
import { MongoClient } from 'mongodb';

const router = Router();

// MongoDB 配置
const mongoUrl = 'mongodb://localhost:27017';
const dbName = 'risk_backend';
const collectionName = 'company_scores';

// 上升企业数据
router.get('/', async (req, res) => {
  const client = new MongoClient(mongoUrl);
  try {
    await client.connect();
    const db = client.db(dbName);
    const collection = db.collection(collectionName);

    // 获取所有公司最新时间段的数据
    const latestData = await collection
      .aggregate([
        {
          $sort: { LComNm: 1, InfoPubDate: -1 }, // 按公司名称升序，时间降序排序
        },
        {
          $group: {
            _id: '$LComNm', // 按公司名称分组
            latestRecord: { $first: '$$ROOT' }, // 获取每组的最新记录
          },
        },
        {
          $replaceRoot: { newRoot: '$latestRecord' }, // 替换根为最新记录
        },
      ])
      .toArray();

    // 统计 "潜在增长" 的公司数量
    const risingCompanies = latestData.filter(
      (company) => company.RiskLevel === '潜在增长'
    );

    // 返回结果
    res.json({
      totalRisingCompanies: risingCompanies.length, // 潜在增长的公司数量
      companies: risingCompanies.map((company) => ({
        name: company.LComNm,
        growthRate: `${Math.abs(company.RiskScore * 100).toFixed(2)}%`, // 示例增长率
        industry: '未知行业', // 可根据实际数据补充行业信息
        status: '潜在增长',
      })),
    });
  } catch (error: any) {
    res.status(500).json({ message: '获取上升企业数据失败', error: error.message });
  } finally {
    await client.close();
  }
});

export default router;